Region modeling of mobile services

ABSTRACT

A shareable application program interface infrastructure which is used in combination with a relational database to provide data storage and processing functions for location-dependent objects, and includes a mechanism for easily associating an object, such a service, with a geographic region, such as an area served by the service. The service designer is provided with a tool to choose a geographic region or a point location (specified by an address), and to associate that selected geographic region with a service. Each service is associated with a geographic region chosen from a hierarchy of predetermined system-defined regions that are preferably organized into a hierarchy composed of levels organized order of decreasing size so that the boundaries of each child region lie within the boundaries of its parent region. The services designer is also provided with the option of creating “user defined regions” that are composed of existing system defined regions or a region centered around a selected location. The user-defined region could represent business objects that relate to a particular entity; for example, a set of sales regions served by different regional sales offices.

CROSS REFERENCE TO A RELATED APPLICATION

[0001] This application is a continuation-in-part of U.S. applicationSer. No. 09/669,503 filed on Sep. 25, 2000 by Prabuddha Biswas and RajaChatterjee.

FIELD OF THE INVENTION

[0002] This invention relates to methods and apparatus for associatinggeographic location information with clients and services, includingparticularly mobile clients and services.

BACKGROUND OF THE INVENTION

[0003] The decreasing cost and size of mobile computing andcommunications devices, and their increasing capabilities, contributesto the explosive growth in new mobile systems and applications. Laptopand handheld computers, as well as Personal Digital Assistants (PDA's)commonly use wireless communications to connect to a network ofavailable services. At the same time, mobile and cellular telephonesincreasingly incorporate computing capabilities with Internet access. Inthe near future, most appliances will also incorporate communicationsinterfaces for remote management. These advances, together with othertechnologies like “active badges” and inexpensive position sensingdevices, will continue to increase the popularity of location-awareapplications.

[0004] Many location-aware computer and communications already in useemploy location-dependent data so that the geographic location of bothservice providers, their clients, and other entities can be taken intoaccount for a variety of purposes. These applications includenavigation, fleet management, resource location and mapping services,many of which are provided over the Internet. As Global PositioningSystem (GPS) devices and other positioning technologies become moreaccurate and less expensive, the number and variety of location-awareapplications will continue to grow dramatically.

[0005] Today, when a mobile phone is used to access data services itconnects to a portal site and it is presented a set of services. Theuser may sometimes have the ability to personalize his/her portal bychoosing the set of services that are of interest. Mobile servicesavailable today are static; i.e., there is no location informationassociated with them. As a result, the same set of services arepresented to the user irrespective of their location.

SUMMARY OF THE INVENTION

[0006] The above-noted U.S. Pat. application Ser. No. 09/669,503describes an infrastructure which may be used by disparate applicationsto support location-aware functions and data storage for both fixed andmobile entities. Location-dependent functions for fixed and mobileentities are described that employ different positioning systems,different input/output devices, and different networking technologies,while allowing these entities to more easily work together. In thatinfrastructure, location and context information which describeslocation-aware entities is stored in a secure, relational databasesystem which allows authorized users access to appropriate information.More specifically, this application infrastructure provides mechanismsfor specifying and modifying location-aware data objects stored in arelational database, for tracking the location of mobile objects, forresponding to queries about the objects and the related data whichdefines those objects, for specifying events and for handlingnotifications concerning events, and for providing data caching andreplication services which more rapidly process frequently used locationinformation.

[0007] This infrastructure employs a database schema which employsclient and service tables to store the current point location, and otherdata, representing virtual objects, including mobile objects. Theinfrastructure further includes a region table which contains datadescribing the geometry and characteristics of geographical regionshaving defined boundaries within which the client and service objectsreside. For example, postal code boundaries may be one of the types ofregions stored in the system. The clients store data indicating theirinterest in a set of services and that data is recorded in a clientprofile database table. The services available on the system which areposition-dependent have a geographical location associated with them.The location information of services is also stored in the databaserepository. The location of the client is determined using positioningservices and may be stored in a database. The last known location of theclient as well as a past history of locations for each client is stored.To enhance performance, an additional table may be stored that maps theclient's current location to one of the geographical regions (e.g.location of client within a postal code).

[0008] The present invention takes the form of a method for easilyassociating a service with a geographic region. The service designer hasthe option of using a graphical tool to choose a geographic region or apoint location (specified by an address), and to associate that selectedgeographic region with a service. In accordance with a principle featureof the invention, each service is associated with a geographic regionchosen from a hierarchy of predetermined geographical regions which arehere called “system-defined regions” which are preferably organized intoa hierarchy composed of levels comprising, in order of decreasing size:Continent Country State Metropolitan area County Postal Code

[0009] In accordance with a further feature of the invention, theservices designer is also provided with the option of creating “userdefined regions” that are composed of existing system defined regions ora region centered around an address (e.g., 5 kilometers around OneOracle Drive, Nashua, N.H. 03062, USA). The user-defined region couldrepresent business objects that relate to a particular entity; forexample, a set of sales regions served by different regional salesoffices.

[0010] These and other objects, features and advantages of the inventionwill become more apparent through a consideration of the followingdetailed description of a specific embodiment of the invention. In thecourse of this description, frequent reference will be made to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1 is a conceptual diagram showing how both stationary andmobile clients and services are interrelated by location mapping datawhich interrelates their geographic locations in accordance with definedregions of interest; and

[0012]FIG. 2 is a schematic diagram illustrating the manner in which thelocation-aware infrastructure contemplated by the present inventioninterfaces with mobile and stationary computing systems and applicationsexecuted by these systems.

DETAILED DESCRIPTION

[0013] The present invention may be implemented by using theinfrastructure described in U.S. Pat. application Ser. No. 09/669,503.That infrastructure as seen at 101 in FIG. 1 provides data storage andfunctional capabilities to an application program 102 for providingservices to, and facilitating communications between, a variety ofstationary and mobile communications systems. For example, theinfrastructure can be used with stationary “services” such as thoseprovided by the Web servers 103 and 105, and stationary client systems,such as the appliances and computers located in an office building asillustrated at 108. Most importantly, the infrastructure contemplated bythe present invention includes mechanisms for dynamically tracking thelocation of mobile systems, such as handheld PDAs, cellular phones, andlaptop computers used by travelers as illustrated in FIG. 1 at 113, 115and 117.

[0014] Each of these mobile and stationary systems may be represented ina relational database by a “virtual object” whose attributes arerepresented by a database schema as illustrated within the dashed linerectangle 120 in FIG. 1. The schema 120 includes a table 121 containingdata regarding “clients,” a table 122 containing data regarding“services,” and a table 123 which stores data defining the attributes of“regions”. The primary key fields, ClientID, ServiceID and RegionID ofthe tables 121-123 are used to create relationships which are defined bya Client_Service table 125, a Client_Region table 127, and aService_Region table 129. These relationships may also be figured outdynamically instead of being permanently stored in database tables.

[0015] Each of the entities modeled by the schema 120 is specified bylocation data. The data in the LOC (location) column in the client table121 and the service table 122 specify the current point position foreach entity, and each region defined by the region table is specified inthat table's geometry column which contains data specifying both theshape and location of the region. When no precise point data isavailable for a particular client in client table 121, the client canposition himself manually with a location specified by an address orstreet intersection or associate himself with one of the regionsavailable in the region table 123. Similarly, if no precise point datais available for a service specified in the service table 122, itsposition may be approximated by placing that service within one or moreregions specified in the region table 123. Note also that, when precisepoint location data is available for a client or service, the point datacan be matched against the regional geometry data in the region table todynamically identify the regions that contain that client or service.For stationary client or service objects, these point-to-regioncomparisons may be done once and matches may be posted into theClient_Region table 127 or the service-region table 129 in advance,speeding subsequent processing. For mobile units, the location data isperiodically or dynamically updated from the GPS/MPS (Mobile PositioningService) data, or other available source, and the point-to-regionmatching may be mapped at update time, or dynamically when needed, atthe option of the application program.

[0016] In order to simplify the task of associating specific clients orservices with geographic regions, a set of system defined regions ispreferably predefined, and the specific region associated with eachentity is either a selected one of these predefined regions or a “userdefined region”. A user defined region is formed from a combination ofsystem defined regions, or a region based on an address. This allows theuser to employ a simple tool, seen at 140 in FIG. 1, for selecting oneor more regions to be associated with a given client or service.

[0017] A table of system defined regions as illustrated at 142 is usedto store definition data for each system defined region. In theimplementation, table 142 can be implemented using a set of interrelatedtables. The table 142 contains a human-interpretable description of eachregion (such as stored character data containing the text “ChicagoMetropolitan Area”, or a displayable descriptive image) and a definitionof the geometry of that region, preferably expressed in a standardrepresentation such as that used in Oracle Spatial, to be describedbelow. The table 142 establishes a hierarchy of nested regionspreferably consisting of the following levels: Continent Country StateMetropolitan area County Postal Code

[0018] Because metropolitan areas may span across different counties andpostal codes, they are kept at the same level as counties and postalcodes. If metropolitan areas happen to cross two state boundaries, theywill be put into both the states. In each case, each child region andits siblings at a given level resides within the extent defined by thegeometry of the parent region.

[0019] The selection and combining tool 140 may take form of a visuallycontrol, such as a dialog box for displaying a hierarchical list of thesystem defined regions, that further permits the user to form a new,user-defined region by selecting a group of system defined regions.Thus, a region described as “The Chicago Metropolitan Region” may beformed by selecting counties in Illinois, Indiana and Wisconsin from thesystem defined region table, and the combining tool would automaticallycompute the geometry of the resulting user defined area using, forexample, the spatial geometry manipulation tools in Oracle Spatialdescribed below. The selection and combining tool 140 preferablyincludes means for presenting the descriptive portion of the systemdefined region data in the table 142 to the user in an easily navigableform, such as an expandable outline or set of nested folders of the typeused to display hierarchical directory and file names in a file system.

[0020] The infrastructure 101, unlike existing location-awareinfrastructures, includes facilities specifically adapted to handlemobile entities, such as mobile phones, PDA's and other hand helddevices. These devices may include built-in GPS (Global PositioningSystem) receivers for continuously or periodically updating locationdata for that device which is stored in the client table 121 andassociated with a Client ID key value. For details on the GlobalPositioning System and GPS receivers, see Understanding GPS: Principlesand Applications by Elliott D. Kaplan (Editor), Artech House; ISBN0890067937 (1996). In addition, Mobile Positioning Systems (MPS)incorporated into cellular phone systems provide a mechanism forperiodically updating location information in the client table 121 forthose devices. MPS technology is similar to the satellite-based GlobalPositioning Systems (GPS) but offers the additional capability ofdetermining location inside buildings, parking garages and othershielded areas such as inside a pocket or briefcase that areinaccessible to GPS systems. MPS Mobile Positioning Systems for mobilephones are offered by Ericsson, Nokia, CellPoint,SnapTrack, Cell-loc,Cambridge Positioning System, etc..

[0021] The application program interface (API) of the infrastructure 101provides location aware functionality to the application program 102,such as location services 131, event services 132 and query services133.

[0022] The location services 131 permit the application program to mapthe location of mobile clients to the location of services or otherclients within a specified region. Given any location, theinfrastructure 101 can return to the application the identification ofall mobile and stationary objects within a certain distance from thatlocation. Given the identification of a particular mobile client, theinfrastructure 101 can return an identification of all relevant serviceswithin a defined region where the mobile client is currently located.Given the identification of any region, the infrastructure can identifyall of the clients and services, whether mobile or stationary, that arecurrently within that region and which have defined attributes.

[0023] The location services 131 are implemented in part by queryservices which are made available to the application 102 via the APIpresented by the infrastructure 101 These query services processlocation data which preferably specify the geographic “point” positionof each object, when such precise data is available, or whichapproximates object positions by specifying defined regions whichcontain the objects. Preferably, this location data is stored in astandard format, such as that used by the locator feature in Oracle8i(orlater) spatial geometry format, a component of the Oracle 8i™ databaseavailable from Oracle Corporation, Redwood Shores, CA. Oracle Spatialand its extensions used with the Oracle8i Enterprise Edition (or later)product, provides an integrated set of functions and procedures thatenables spatial data to be stored, accessed, and analyzed quickly andefficiently in an Oracle8i database. Oracle Spatial provides a SQLschema and functions that facilitate the storage, retrieval, update, andquery of collections of spatial features in an Oracle8i database, andincludes the following components:

[0024] a. A schema that prescribes the storage, syntax, and semantics ofsupported geometric data types;

[0025] b. A spatial indexing mechanism;

[0026] c. A set of operators and functions for performingarea-of-interest and spatial join queries; and

[0027] c. Administrative utilities.

[0028] For more detailed information, see Oracle Spatial User's Guideand Reference, Release 8.1.6, (Oracle Part No. A77132-01), 1997, 1999.

[0029] The Oracle8i Spatial products use the geocoding process forconverting an address or street intersection information into ageographical location specified by a latitude and longitude. Oracle8iSpatial may be used to support web-based searches by proximity from agiven location and is designed to facilitate tasks such as supplementingbusiness information with a location attribute (latitude and longitude)and to perform distance queries, and to present a graphicalrepresentation of locations for easier visualization by users.

[0030] The location data in the client and service tables 121 and 122may be accessed by relational database operations using locator tosupport queries based on a specified proximity to a given location. Thegeographical point locations in the client and service tables, can bereadily associated with the region geometry data defined in businessdata tables as illustrated by the region table 123, such as datadefining commercial regions (e.g., downtown, north end, airport,shopping center, subdivision), postal (zip) codes, telephone area codes,etc, or demographic regions. The point-to-geometry matching provided bystandard operations on location data available in the RDBMS can then beused to build the linking relationship client-region and service-regiontables seen at 127 or 129, or the client and service to region matchingcan be performed dynamically as needed. The proximity searchcapabilities provided by the RDBMS allow the user to readily locateclients and services which are near to any defined point, including thelocation of a particular client or service.

[0031] Oracle8i Spatial uses the Oracle8i extensible indexing framework.This mechanism allows domain-specific data to be indexed and retrievedin the same way as other native datatypes, such as text and number. InOracle8i Spatial, an application can programmatically invoke the indexfunctionality, which takes the table name and column name as inputs, andautomatically builds a spatial index. Oracle8i Spatial provides asophisticated engine for data validation, indexing, relate operator use,buffer generation, within distance query options, polygon Booleanoperations, and so on.

[0032] When business data has been geocoded and indexed in accordancewith the client/service /region schema used by the location-awareinfrastructure, applications can query against it using proximityqueries, such as permitting a mobile client to display the all ATMmachines within a given radius of the mobile client's current location.The Locator_Within_Distance operator provided by Oracle8i Spatial takescolumn of geocoded points in a table (for example, a service tabledescribing all ATM locations in North America), a geometry representingthe point or region of interest, and a distance in some units (forexample, three miles). If used within a SELECT statement as the WHEREclause, the query will produce all records that satisfy the spatialcriteria. Three distance units are supported by this operator: MILE, FT,and METER. If a unit is not specified, a point location is assumed todefine latitude and longitude in decimal degrees.

[0033] The region modeling utility provides a unique capability ofmaking only those services available to the user that is pertinent tohis/her location. In the mobile internet it is extremely important tohighlight only the relevant services because of the limitation of thedevice display capabilities. If the user's current location is known,then we can find out all the services that are relevant by figuring outthe regions (system or user defined) that interact with his/herlocation.

[0034] The event services component 132 of the infrastructure allows theuser to specify events based on location and receive notification ofevents provided by the application 102 and its OS environment.

[0035] As illustrated in FIG. 2 of the drawings, location awareinfrastructure may be used to advantage in combination with a multi-tierrelational database system which provides Internet Web database servercapabilities, such as the Oracle 8i, Oracle 8i Lite (for mobileapplications), and Oracle 9iAS Wireless Edition.

[0036] Oracle8i Lite, available from Oracle Corporation, provides acomprehensive suite of enterprise software to build, deploy, andcentrally manage mobile enterprise applications that synchronize datawith central database servers. Oracle 9iAS Wireless Edition is a servercomponent of the Oracle Internet Platform that enables existing databaseand Internet applications to be made accessible from virtually anydevice connected to the Internet, including WAP smartphones, wirelessPDAs such as the Palm VII product sold by 3Com, standard phonesconnected to Interactive Voice Recognition (IVR) systems, modem-equippedpersonal organizers, television set-top boxes, etc. Oracle 9iAS WirelessEdition provides an infrastructure which renders existing content(Internet, file system, or database applications) in a deviceindependent fashion by extracting their output, dynamically convertingit to an internal XML format and in turn to the mark-up languagesupported by the user's device, including WML, TinyHTML, and voicemark-up language (VoxML). Using 9iAS Wireless Edition, mobile operators,content providers, and wireless ISPs may create their own wirelessportals, and existing enterprise systems may be seamlessly extended toreach mobile users.

[0037] The location-aware infrastructure contemplated by the presentinvention may be used to extend the capabilities of relational databaseproducts like those noted above by extending the database API to providelocation aware data, event and query services to applications. Theselocation aware functions are preferably implemented as extensions to theexisting Java Location API seen at in FIG. 2, and to the SQL LocationAPI seen at 204. The Java Location provides a Java object view of thedata and functions implemented by the database schema 120, while the SQLLocation API allows applications to manipulate the database usingconventional PL/SQL statements and procedures, and to treat clients,services and regions as objects in the object relational database.

[0038] The location data values are stored in the database tables asshown at 120 in accordance with the client/service/region schema. Thelocation data is preferably processed using the database system'sstandard geometric data handling functions and queries, such as thoseprovided by Oracle Spatial as discussed above, as illustrated at 225.

[0039] The application programs that utilize the infrastructure may takea variety of forms. An application program operate in a “two-tier”architecture in which the application program, seen at 230 in FIG. 2,directly communicates with a mobile or stationary device, such as thecellular phone shown at 240, and makes direct calls to theinfrastructure using the location server API 201, the Java API 202and/or the SQL API 203. Other applications providing location-dependentfunctions may be readily integrated into a multi-tier architecture asindicated at 250 and 260 in FIG. 2. The application at 250 operates as aserver application in the environment provided by the Web server 302,using the Web server's HTTP protocol to exchange information withconventional Web browser programs and the like, as illustrated by thedesktop client Web client seen at 310. The application program seen at260 employs the special services of gateway/portal services shown at325, such as the Oracle 9iAS Wireless Edition infrastructure discussedearlier, which permit the application 260 to effectively communicatewith devices such as the handheld PDA seen at 330.

[0040] Both applications 250 and 260 may also make use of a set ofadditional location services which are presented via the Locationservices API seen at 201 in FIG. 2. This API exposes ancillary services,including modeling tools for specifying and modifying geometries whichare stored using the schema 120, location tracking and managementfunctions, including the ability to receive and update dynamicallychanging location data representing mobile objects, event services, anddata pre-fetching, caching and replication services which permitfrequently used data to be processed more efficiently. The locationservices API 201 provides an architectural framework which makesscaleable location aware data storage and processing functions availableto variety of disparate applications, reducing the time and effortneeded to develop new location aware applications by eliminatingredundant develop efforts while encouraging data and processstandardization and sharing by presenting a common interface.

[0041] It is to be understood that the specific embodiment that has beendescribed is merely illustrative of one application of the principles ofthe invention. Numerous modifications may be made by those skilled inthe art without departing from the true spirit and scope of theinvention.

What is claimed is:
 1. Apparatus for performing location-dependent dataprocessing operations comprising, in combination, a relational databasemanagement system for creating and updating data structures describingobjects, said data structures including means for storing dataspecifying the geographic location of at least selected ones of saidobjects, means for storing reference data describing a plurality ofsystem defined regions, said reference data including the specificationof the geographic location of each given one of said system definedregions and a human interpretable description of each given one of saidregions, a user-manipulated control for selecting a particular one ofsaid regions, and means responsive to said control for transferringselected items of said reference data to said means for storinggeographic location data associated with one of said objects. 2.Apparatus as set forth in claim 1 wherein said data structuresdescribing objects are relational tables describing one or more serviceseach having a geographic location serving one of said system definedregions.
 3. Apparatus as set forth in claim 1 wherein said means forstoring reference data includes means for storing said reference data ina hierarchy of regions.
 4. Apparatus as set forth in claim 3 whereinsaid hierarchy of regions consists of a parent-child hierarchy of levelsholding regions of decreasing size characterized by each child regionhaving a geographical extent the lies within the geographical extent ofits parent region.
 5. Apparatus as set forth in claim 3 wherein saidreference data defines the boundaries of each of said regions andwherein any first region having defined boundaries within the boundariesof a region is nested within said second region within said hierarchy.6. Apparatus as set forth in claim 1 wherein said user-manipulatedcontrol includes means for selecting and combining a plurality of saidregions to define a new user-specified region which combine saidplurality of said regions.
 7. Apparatus as set forth in claim 6 whereinsaid means responsive to said control includes means for transferringinformation describing said new user-defined region to said means forstoring data specifying the geographic location of one of said objects.8. In combination with a relational database management system forcreating and updating data structures describing objects, said datastructures including means for storing data specifying geographiclocations associated with of at least selected ones of said objects,means for storing reference data describing a plurality of systemdefined regions, said reference data including the specification of thegeographic boundaries of each given one of said system defined regionsand further including data comprising a human interpretable descriptionof each given one of said regions, said reference data being organizedin a hierarchy of parent- child levels wherein each child region havegeographic boundaries lying within the geographic boundaries of itsparent region, a user-manipulated control for selecting a particular oneof said regions and a particular one of said objects, and meansresponsive to said control for transferring data describing saidparticular one of said regions to said data structures to specify ageographic location associated with said particular one of said objects.9. Apparatus as set forth in claim 8 wherein said user-manipulatedcontrol includes means for selecting and combining a plurality of saidregions to define a new user-specified region which combine saidplurality of said regions.
 10. Apparatus as set forth in claim 9 whereinsaid means responsive to said control includes means for transferringinformation describing said new user-defined region to said datastructures to specify a geographic location associated with saidparticular one of said objects.
 11. A method for performinglocation-dependent data processing operations comprising, incombination, the steps of creating and updating data structuresdescribing objects in a relational database management system, said datastructures including data structures for storing the geographic locationof at least selected ones of said objects, storing reference datadescribing a plurality of system defined regions, said reference dataincluding the specification of the geographic location of each given oneof said system defined regions and a human interpretable description ofeach given one of said regions, employing a user-manipulated control forselecting a particular one of said regions, and transferring items ofsaid reference data selected using said control to said data structuresto associate said particular one of said regions with one of saidobjects.
 12. The method set forth in claim 11 wherein said datastructures describing objects are relational tables describing one ormore services each having a geographic location serving one of saidsystem defined regions.
 13. The method set forth in claim 11 whereinsaid step of storing reference data includes the step of storing saidreference data in a hierarchy of regions.
 14. The method set forth inclaim 13 wherein said hierarchy of regions consists of a parent-childhierarchy of levels holding regions of decreasing size characterized byeach child region having a geographical extent the lies within thegeographical extent of its parent region.
 15. The method set forth inclaim 13 wherein said reference data defines the boundaries of each ofsaid regions and wherein any first region having defined boundarieswithin the boundaries of a region is nested within said second regionwithin said hierarchy.
 16. The method set forth in claim 11 wherein saidstep of employing a user-manipulated control user-manipulated controlincludes the step of selecting and combining a plurality of said regionsto define a new user-specified region which combine said plurality ofsaid regions.
 17. The method set forth in claim 16 wherein said step ofemploying a user-manipulated control for selecting a particular one ofsaid regions further includes the step of transferring informationdescribing said new user-defined region to said data structures toassociate said new user-defined region with one of said objects.
 18. Themethod of creating and updating data structures describing objects arelational database management system, said data structures includingdata specifying a geographic location associated with of at least one ofsaid objects, said method comprising the steps of: storing referencedata describing a plurality of system defined regions, said referencedata including the specification of the geographic boundaries of eachgiven one of said system defined regions and further including datacomprising a human interpretable description of each given one of saidregions, said reference data being organized in a hierarchy ofparent-child levels wherein each child region have geographic boundarieslying within the geographic boundaries of its parent region, employing auser-manipulated control to select a particular one of said regions anda particular one of said objects, and transferring data describing saidparticular one of said regions to said data structures to specify ageographic location associated with said particular one of said objects.19. The method set forth in claim 18 wherein said step of employing auser-manipulated control to select a particular one of said regionsincludes the step of selecting and combining a plurality of said regionsto define a new user-specified region having geographic boundaries whichencompass the boundaries of all of said plurality of said regions. 20.Apparatus as set forth in claim 19 wherein said step of transferringdata consists of the step of transferring information describing saidnew user-defined region to said data structures to specify a geographiclocation associated with said particular one of said objects.